package pattern.interpreter;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;

public class Client {
    public static void main(String[] args) throws IOException {
        String expStr = getExpStr();
        HashMap<String, Integer> var = getValue(expStr);
        Calculator calculator = new Calculator(expStr);
        int result = calculator.run(var);
        System.out.println("运算的结果 = [" + result + "]");
    }

    /**
     * 获取表达式
     * @return
     * @throws IOException
     */
    public static String getExpStr() throws IOException{
        System.out.println("请输入表达式");
        return (new BufferedReader(new InputStreamReader(System.in))).readLine();
    }

    public static HashMap<String, Integer> getValue(String expStr) throws IOException{
        HashMap<String, Integer> map = new HashMap<>();

        for(char ch : expStr.toCharArray()){
            if(ch != '+' && ch != '-'){
                if(! map.containsKey(String.valueOf(ch))){
                    System.out.println("请输入: " + String.valueOf(ch) + "的值");
                    String in = (new BufferedReader(new InputStreamReader(System.in))).readLine();
                    map.put(String.valueOf(ch), Integer.valueOf(in));
                }
            }
        }

        return map;
    }
}
